import com.google.gson.Gson;
import com.google.gson.stream.JsonReader;
import org.apache.poi.hssf.usermodel.HSSFCellStyle;
import org.apache.poi.hssf.usermodel.HSSFFont;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
import org.apache.poi.ss.usermodel.HorizontalAlignment;
import org.apache.poi.ss.usermodel.Row;
import org.apache.poi.ss.usermodel.Sheet;
import org.apache.poi.ss.util.CellRangeAddress;
import java.io.FileOutputStream;
import java.io.FileReader;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
public class MavenPrimary {
    static List<films> film= new ArrayList<>();
    public static void GetJsonData() throws IOException {//读入并解析json数据
        FileReader fr=new FileReader("douban.json");//
        JsonReader reader=new JsonReader(fr);//解析json文件
        Gson gson=new Gson().newBuilder().create();
        reader.beginArray();
        while(reader.hasNext()){
            film.add(gson.fromJson(reader,films.class));//利用Gson将json数组转换为对应模型的对象
        }
    }
    public static void ExportExcel() throws IOException {//导出Excel表格
        FileOutputStream fos=new FileOutputStream("豆瓣电影评分表.xls");//创建excel文件
        HSSFWorkbook workbook=new HSSFWorkbook();//创建工作簿对象并构建其内部架构
        Sheet sheet1=workbook.createSheet("在2000年之前上映");
        Sheet sheet2=workbook.createSheet("在2000年之后上映");
        Row row1=sheet1.createRow(0);//两个工作表的属性行(第一行)
        row1.createCell(0).setCellValue("电影中文名");
        row1.createCell(1).setCellValue("电影原名");
        row1.createCell(2).setCellValue("评价人数");
        row1.createCell(3).setCellValue("平均评分");
        row1.createCell(4).setCellValue("上映年份");
        Row row2=sheet2.createRow(0);
        row2.createCell(0).setCellValue("电影中文名");
        row2.createCell(1).setCellValue("电影原名");
        row2.createCell(2).setCellValue("评价人数");
        row2.createCell(3).setCellValue("平均评分");
        row2.createCell(4).setCellValue("上映年份");
        for (films films : film) {
            Row row;
            if (films.getYear() < 2000) {
                row = sheet1.createRow(sheet1.getLastRowNum()+1);
            } else {
                row = sheet2.createRow(sheet2.getLastRowNum()+1);
            }
            row.createCell(0).setCellValue(films.getName_Ch());
            row.createCell(1).setCellValue(films.getName_Fr());
            row.createCell(2).setCellValue(films.getNum());
            row.createCell(3).setCellValue(films.getPoint());
            row.createCell(4).setCellValue(films.getYear());
        }
        workbook.write(fos);//写入对应文件流
        System.out.println("Excel表格生成完毕！");
    }
    public static void main(String[] args) throws IOException {//静态成员只能访问静态成员
        GetJsonData();
        ExportExcel();
    }
}
